package jmine.tec.persist.schema.superclass;

import javax.persistence.Column;
import javax.persistence.MappedSuperclass;

import jmine.tec.persist.annotation.Constraint;
import jmine.tec.persist.annotation.Index;
import jmine.tec.persist.annotation.UniqueConstraint;
import bancosys.tec.component.Documentation;
import bancosys.tec.persist.bussobj.PersistableBusinessObject;

@MappedSuperclass
public abstract class AbstractTableSuperClassEntity extends PersistableBusinessObject {

    private String mnemonico;

    private String campoProprio;

    /**
     * @return the mnemonico
     */
    @UniqueConstraint(suffix = "0", columns = { "MNE" })
    @Column(name = "MNE", length = 20, nullable = false)
    @Documentation("MNEMONICO")
    public String getMnemonico() {
        return this.mnemonico;
    }

    /**
     * @param mnemonico the mnemonico to set
     */
    public void setMnemonico(String mnemonico) {
        this.mnemonico = mnemonico;
    }

    /**
     * @return the campoProprio
     */
    @Index(suffix = "0")
    @Column(name = "CAMPO_PROPRIO", length = 41)
    @Constraint(suffix = "0", condition = "CAMPO_PROPRIO IN ('S', 'N')")
    @Documentation("CAMPO PROPRIO SUPER CLASS")
    public String getCampoProprio() {
        return this.campoProprio;
    }

    /**
     * @param campoProprio the campoProprio to set
     */
    public void setCampoProprio(String campoProprio) {
        this.campoProprio = campoProprio;
    }
}
